{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e8d97e38-ded0-44f4-99dc-65ece54b4fb3",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import fetch_california_housing #导入房价数据集\n",
    "from sklearn.model_selection import cross_val_score #导入交叉验证\n",
    "from sklearn.tree import DecisionTreeRegressor "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7fb8c8b3-aec0-4634-baae-cef5912b20e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1.30372803, -0.81998034, -0.78944925, -0.48111286, -0.77926796,\n",
       "       -0.80157115, -0.54460091, -1.03593072, -1.04927725, -0.52462313])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#导入数据，回归化实例\n",
    "housing = fetch_california_housing()\n",
    "regressor = DecisionTreeRegressor(random_state=5)\n",
    "cross_val_score(regressor, housing.data, housing.target, cv=10\n",
    "               ,scoring=\"neg_mean_squared_error\" #导入数据，回归化实例\n",
    "#选择计算方法为负均方误差\n",
    "               )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "53275761-c6da-4157-99ec-fe0c83a8f106",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.tree import DecisionTreeRegressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "71f1631d-16f5-468f-85e8-b9b08adc832e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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HyarAgAAYwgiAADAmIQNIoMHD9batWs1ePBg002Je7zXkcN7HTm815HF+x05kX6vo3qyKgAAiG8J2yMCAADMI4gAAABjCCIAAMAYgggAADAmIYPIpk2bdPPNN2vIkCGaOXOm3n33XdNNiks1NTVavHixxowZI4fDoTfeeMN0k+LW+vXrNWPGDKWkpGjUqFG67777dOLECdPNiktlZWW67bbb/MWeZs+erYqKCtPNSghPP/20HA6HHn/8cdNNiTs/+tGP5HA4gm6TJ0+OyLkTLoi8+uqrWr16tdauXavDhw/r9ttvV35+vs6ePWu6aXHnwoULuv3227Vp0ybTTYl71dXVWrFiherq6rR7925dunRJ9957ry5cuGC6aXFn7Nixevrpp3Xo0CEdPHhQ99xzj77zne/o/fffN920uHbgwAG9+OKLuu2220w3JW79wR/8gT777DP/rba2NiLnTbjluzNnztSMGTO0ceNGSd79bDIyMvToo49qzZo1hlsXvxwOh15//XXdd999ppuSEBobGzVq1ChVV1dr3rx5ppsT90aMGKFnnnlGjzzyiOmmxKXz58/rjjvu0M9//nP95Cc/0dSpU/Xcc8+ZblZc+dGPfqQ33nhDR44cifi5E6pH5OLFizp06JDy8vL8x5KSkpSXl6f9+/cbbBkQWi0tLZK8F0iET3t7u1555RVduHBBs2fPNt2cuLVixQotWrQo6Hc3Qs/tdmvMmDGaOHGiiouLdfLkyYicN6o3vQu1zz//XO3t7Ro9enTQ8dGjR+v48eOGWgWEVkdHhx5//HHNmTNHt956q+nmxKX33ntPs2fP1tdff63rr79er7/+um655RbTzYpLr7zyig4fPqwDBw6YbkpcmzlzpjZv3qycnBx99tlnWrdune6++24dPXpUKSkpYT13QgURIBGsWLFCR48ejdj4biLKycnRkSNH1NLSol/96ldaunSpqqurCSMhdurUKT322GPavXu3hgwZYro5ca2wsND/59tuu00zZ87U+PHj9dprr4V9yDGhgsg3vvENJScn68yZM0HHz5w5oxtvvNFQq4DQWblypd58803V1NRo7NixppsTtwYNGqTMzExJ0rRp03TgwAE9//zzevHFFw23LL4cOnRIZ8+e1R133OE/1t7erpqaGm3cuFFtbW1KTk422ML4dcMNNyg7O1v19fVhP1dCzREZNGiQpk2bpj179viPdXR0aM+ePYzvIqbZtq2VK1fq9ddf11tvvaUJEyaYblJC6ejoUFtbm+lmxJ1vf/vbeu+993TkyBH/bfr06SouLtaRI0cIIWF0/vx5NTQ06Kabbgr7uRKqR0SSVq9eraVLl2r69Om688479dxzz+nChQt6+OGHTTct7pw/fz4oTX/44Yc6cuSIRowYoXHjxhlsWfxZsWKFtm3bpl//+tdKSUnR6dOnJUmpqakaOnSo4dbFlyeffFKFhYUaN26czp07p23btmnfvn2qrKw03bS4k5KScsU8p+uuu07p6enMfwqxv/7rv9bixYs1fvx4ffrpp1q7dq2Sk5NVVFQU9nMnXBB58MEH1djYqKeeekqnT5/W1KlTtXPnzismsGLgDh48qAULFvjvr169WpK0dOlSbd682VCr4lNZWZkkaf78+UHHX3rpJS1btizyDYpjZ8+e1UMPPaTPPvtMqampuu2221RZWamFCxeabhrQb7///e9VVFSkpqYmjRw5UnPnzlVdXZ1GjhwZ9nMnXB0RAAAQPRJqjggAAIguBBEAAGAMQQQAABhDEAEAAMYQRAAAgDEEEQAAYAxBBAAAGEMQAQAAxhBEAACAMQQRAABgDEEEAAAYQxABAADG/H9EOWrmp8zpqQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "rng = np.random.RandomState(1) #生成随机数，可以不为1，随便为其他数，相当于指定随机数集\n",
    "X = np.sort(5 * rng.rand(80,1),axis=0)\n",
    "Y = np.sin(X).ravel() #ravel降维，因为y轴只能一维数据\n",
    "Y[::5] = 5 * (0.5 - rng.rand(16)) #模拟误差生成\n",
    "plt.figure()\n",
    "plt.scatter(X, Y, s=20, edgecolor=\"black\", c=\"orange\", label=\"data\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2b44a8e8-a049-468c-acd4-837c49f1bd59",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeRegressor(max_depth=5)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;DecisionTreeRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.tree.DecisionTreeRegressor.html\">?<span>Documentation for DecisionTreeRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>DecisionTreeRegressor(max_depth=5)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "DecisionTreeRegressor(max_depth=5)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#探究max_depth对回归树的影响\n",
    "rag1 = DecisionTreeRegressor(max_depth=2)\n",
    "rag2 = DecisionTreeRegressor(max_depth=5)\n",
    "rag1.fit(X,Y)\n",
    "rag2.fit(X,Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1d5c30af-bf6c-42ef-b680-025624be4a55",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis] #newaxis是升高维度，x轴必须是二维数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1a61c841-a727-480e-93ad-ce5114f254a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "#得到目标值\n",
    "Y_rag1 = rag1.predict(X_test)\n",
    "Y_rag2 = rag2.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "cea03c1c-9541-4016-a7cc-9eb4e7ff106f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#可视化对比效果\n",
    "plt.figure()\n",
    "plt.scatter(X, Y, s=20, edgecolor=\"black\", c=\"orange\", label=\"data\")\n",
    "plt.plot(X_test, Y_rag1, color=\"blue\", label=\"rag1\", linewidth=2)\n",
    "plt.plot(X_test, Y_rag2, c=\"green\", label=\"rag2\", linewidth=2)\n",
    "plt.xlabel(\"data\")\n",
    "plt.ylabel(\"target\")\n",
    "plt.title(\"decisiontreeregressor\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7afdd3d7-38a4-44bd-ad41-f9a5448364d1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
